const jwt = require('jsonwebtoken');
const { secretOrPublicKey } = require('../config/index');

module.exports = {
    // 创建一个为期两个小时的 token
    createHoursToken(code, openid, session_key) {
        return jwt.sign({
            exp: Math.floor(Date.now() / 1000) + 2,
            code,
            openid,
            session_key,
        }, secretOrPublicKey);
    },
    // 创建一个为期一个月的 token
    createMonthToken(code, openid, session_key) {
        return jwt.sign({
            exp: Math.floor(Date.now() / 1000) + 5,
            code,
            openid,
            session_key,
        }, secretOrPublicKey);
    },
    // 验证 token 有效性
    checkToken(token) {
        return new Promise((resolve, reject) => {
            jwt.verify(token, secretOrPublicKey, (err, decode) => {
                if (err) {
                    reject(err);
                    return;
                }
                resolve(decode);
            })
        })
    }
}